package com.yfqy.app.domain.entity;

import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 定时任务表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ScheduledTask {
    /**
     * 主键ID
     */
    private Long id;

    /**
     * 任务类型(ORDER_TIMEOUT-订单超时未支付,GROUP_TIMEOUT-拼团超时未成团,...)
     */
    private String taskType;

    /**
     * 业务ID(如订单ID、拼团ID等)
     */
    private Long businessId;

    /**
     * 业务数据(JSON格式，存储任务需要的额外数据)
     */
    private String businessData;

    /**
     * 执行方法(如类名+方法名)
     */
    private String businessMethod;

    /**
     * 计划执行时间
     */
    private Date executeTime;

    /**
     * 状态(0-待执行,1-执行中,2-执行成功,3-执行失败,4-已取消)
     */
    private Byte status;

    /**
     * 已运行次数
     */
    private Integer runsCount;

    /**
     * 最大运行次数
     */
    private Integer maxRunsCount;

    /**
     * cron表达式
     */
    private String cron;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 创建时间
     */
    private Date createdTime;

    /**
     * 更新时间
     */
    private Date modifiedTime;

    private String remark;
}